<?php
/**
 * Mechanism
 * 
 * LICENSE
 * 
 * This file is private intellectual property of the author. 
 * All rights reserved. Copying and illegal using is punishable by law.
 * 
 * @copyright Copyright (c) 2011 BreatheInMyVoid ( BreatheInMyVoid@gmail.com )
 */

namespace Mechanism\Router\Route {
 	/**
 	 * Interface for route rules
	 *
 	 * @author BreatheInMyVoid ( BreatheInMyVoid@gmail.com )
 	 */
	interface IRoute {
		/**
		 * Set module
		 * 
		 * @param string
		 */
		public function set_module( $module );
		
		/**
		 * Get module
		 */
		public function get_module( );
		
		/**
		 * Set controller
		 * 
		 * @param string
		 */
		public function set_controller( $controller );
		
		/**
		 * Get controller
		 */
		public function get_controller( );
	
		/**
		 * Set action
		 * 
		 * @param string
		 */
		public function set_action( $action );
		
		/**
		 * Get action
		 */
		public function get_action( );

		/**
		 * Get variables
		 *
		 * @return array
		 */
		public function get_vars( );

		/**
		 * Set regex rule for route part
		 * 
		 * @param string
		 * @param string regex
		 */
		public function set_rule( $route_part, $rule ); 
		
		/**
		 * Match route
		 * 
		 * Main matching method
		 * 
		 * @param string
		 * @return bool
		 */
		public function match( $uri );
 	}
 }
